// pages/yourPage/yourPage.js
const { config, getApiUrl } = require('../../utils/config.js');
Page({
  data: {
    src: '',
    mushroomDetails: null,
    showMushroomInfo: false
  },
  onLoad() {
    this.ctx = wx.createCameraContext()
  },
  takePhoto() {
    this.ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        this.setData({
          src: res.tempImagePath,
        })
        // 蘑菇识别
        this.mushroomClassify();
      }
    })
  },
  uploadPhoto() {
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album'],
      success: (res) => {
        const tempFilePaths = res.tempFilePaths[0]
        this.setData({
          src: tempFilePaths
        })
        console.log(tempFilePaths);
        console.log("准备读文件")
        console.log("准备读文件")
        // 读取文件内容
        wx.getFileSystemManager().readFile({
          filePath: tempFilePaths,
          encoding: 'base64',
          success(data) {
            // console.log('读取文件成功', data.data);
            // 在这里可以处理文件内容，比如发送给后端接口
          },
          fail(error) {
            console.log('读取文件失败', error);
          }
        });

        // 图片识别
        // this.imgClassify();
        this.mushroomClassify();
      }
    })
  },
  imgClassify() {
    const tempFilePath = this.data.src;
    console.log("准备请求api", tempFilePath)
    var result = [];
    wx.getFileSystemManager().readFile({
      filePath: tempFilePath,
      encoding: 'base64',
      success: (res) => {
        const base64Image = res.data
        wx.request({
          url: 'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant?access_token=24.fff8bb0efbf59d5327e7ba83f1386c4b.2592000.1736830280.282335-116681937',
          method: 'POST',
          header: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Accept': 'application/json',
            'Cookie': 'BAIDUID=09731BC2C8FC3EDE54877B8F41984B85:FG=1'
          },
          data: {
            image: base64Image // 这里替换为实际的图片base64数据
          },
          success: (res) => {
            console.log(res.data);
            console.log(res.data.result);
            result = res.data.result;
            console.log("ok", this.data.result, result)
            this.setData({
              result: result
            })
            console.log("ok2", this.data.result, result)
            // 处理接口返回的数据
          },
          fail: function (error) {
            console.log(error);
            // 处理请求失败的情况
          }
        });
      },
      fail: function (err) {
        console.error(err)
      }
    })
  },
  mushroomClassify() {
    const tempFilePath = this.data.src;
    console.log("准备请求mushroom api", tempFilePath)
    // 将选择的图片上传至第三方服务的后端接口
    wx.uploadFile({
      url: getApiUrl(config.API.CLASSIFY), // 第三方服务的上传接口地址
      filePath: tempFilePath,
      name: 'image', // 对应后端接口的文件字段名
      formData: {
        'user': 'test' // 其他表单数据，如果需要的话
      },
      success: (res) =>  {
        // 请求成功，获取返回的数据
        console.log(res.data);
        // 将返回的字符串数据解析为对象
        var data = JSON.parse(res.data);
        console.log(data);
        console.log(typeof res.data);
        console.log(data.status);

        // 判断请求是否成功
        if (data.status === 'success') {
          // 处理返回的蘑菇详情数据
          var mushroomDetails = data.mushroom_details;
          var predictedType = data.predicted_type;

          // 在页面中展示蘑菇详情等信息
          console.log("预测类型：" + predictedType);
          console.log("中文名：" + mushroomDetails.type_chinese_name);

          this.setData({
            mushroomDetails: mushroomDetails,
            showMushroomInfo: true
          });

          // 弹出包含蘑菇类型中文名的弹窗
          wx.showModal({
            title: '蘑菇中文名',
            content: mushroomDetails.type_chinese_name,
            showCancel: false
          });

          // 可以将图片链接设置到页面中的图片元素上
          // 例如：this.setData({ mushroomImage: mushroomDetails.icon_url });
        } else {
          console.log("请求失败");
        }
        // 处理服务器返回的结果
      },
      fail: function (error) {
        console.log(error);
        // 处理上传失败的情况
      }
    })
  },
  startRecord() {
    this.ctx.startRecord({
      success: (res) => {
        console.log('startRecord')
      }
    })
  },
  stopRecord() {
    this.ctx.stopRecord({
      success: (res) => {
        this.setData({
          src: res.tempThumbPath,
          videoSrc: res.tempVideoPath
        })
      }
    })
  },
  error(e) {
    console.log(e.detail)
  },
  onShow() {
    if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
      this.getTabBar().setData({
        active: 1  // 野生菌识别的索引是 1
      })
    }
  }
})